package com.ruoyi.project.system.controller;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.service.IDiagnosisCancelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * 控制器类（接收前端请求，返回响应）
 * 类名严格按照要求：DiagnosisCancel
 */
@RestController
@RequestMapping("/api/diagnosis")  // 接口前缀（与前端请求地址对应）
public class DiagnosisCancel {

    // 注入服务层实现
    @Autowired
    private IDiagnosisCancelService diagnosisCancelService;

    /**
     * 接口：接收 resId，更新 resolve 为 2
     * 请求方式：POST
     * 请求体：{ "resId": "病人唯一标识" }
     * 返回格式：RuoYi 标准 AjaxResult
     */
    @PostMapping("/updateResolveToTwo")
    public AjaxResult updateResolveToTwo(@RequestBody Map<String, String> param) {
        try {
            // 1. 从请求体中获取 resId（前端传递的参数名必须为 resId）
            String resId = param.get("resId");

            // 2. 调用服务层执行更新
            boolean success = diagnosisCancelService.updateResolveToTwo(resId);

            // 3. 返回结果（符合 RuoYi 前端接收格式）
            if (success) {
                return AjaxResult.success("更新 resolve 为 2 成功");
            } else {
                return AjaxResult.error("未找到 resId 对应的记录，更新失败");
            }
        } catch (IllegalArgumentException e) {
            // 参数校验失败
            return AjaxResult.error(e.getMessage());
        } catch (Exception e) {
            // 其他异常（如数据库异常）
            e.printStackTrace();
            return AjaxResult.error("更新失败：" + e.getMessage());
        }
    }

    // 新增接口：提交诊疗数据
    @PostMapping("/submit")
    public AjaxResult submitDiagnosis(@RequestBody Map<String, Object> payload) {
        return diagnosisCancelService.submitDiagnosis(payload);
    }
}